package client;

import javax.xml.bind.JAXBElement;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElementRef;
import javax.xml.bind.annotation.XmlSchemaType;
import javax.xml.bind.annotation.XmlType;
import javax.xml.datatype.XMLGregorianCalendar;

/**
 * <p>
 * Java class for User complex type.
 * 
 * <p>
 * The following schema fragment specifies the expected content contained within
 * this class.
 * 
 * <pre>
 * &lt;complexType name="User">
 *   &lt;complexContent>
 *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *       &lt;sequence>
 *         &lt;element name="birthdate" type="{http://www.w3.org/2001/XMLSchema}dateTime" minOccurs="0"/>
 *         &lt;element name="email" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *         &lt;element name="endBirthdate" type="{http://www.w3.org/2001/XMLSchema}dateTime" minOccurs="0"/>
 *         &lt;element name="gender" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
 *         &lt;element name="id" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *         &lt;element name="limit" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
 *         &lt;element name="loginCount" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
 *         &lt;element name="name" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *         &lt;element name="password" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *         &lt;element name="permission" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
 *         &lt;element name="registertime" type="{http://www.w3.org/2001/XMLSchema}dateTime" minOccurs="0"/>
 *         &lt;element name="start" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
 *         &lt;element name="startBirthdate" type="{http://www.w3.org/2001/XMLSchema}dateTime" minOccurs="0"/>
 *         &lt;element name="status" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
 *       &lt;/sequence>
 *     &lt;/restriction>
 *   &lt;/complexContent>
 * &lt;/complexType>
 * </pre>
 * 
 * 
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "User", namespace = "http://model.health.com", propOrder = {
		"birthdate", "email", "endBirthdate", "gender", "id", "limit",
		"loginCount", "name", "password", "permission", "registertime",
		"start", "startBirthdate", "status" })
public class User
{

	@XmlSchemaType(name = "dateTime")
	protected XMLGregorianCalendar	birthdate;
	@XmlElementRef(name = "email", namespace = "http://model.health.com", type = JAXBElement.class)
	protected JAXBElement<String>	email;
	@XmlSchemaType(name = "dateTime")
	protected XMLGregorianCalendar	endBirthdate;
	@XmlElementRef(name = "gender", namespace = "http://model.health.com", type = JAXBElement.class)
	protected JAXBElement<Integer>	gender;
	@XmlElementRef(name = "id", namespace = "http://model.health.com", type = JAXBElement.class)
	protected JAXBElement<String>	id;
	@XmlElementRef(name = "limit", namespace = "http://model.health.com", type = JAXBElement.class)
	protected JAXBElement<Integer>	limit;
	@XmlElementRef(name = "loginCount", namespace = "http://model.health.com", type = JAXBElement.class)
	protected JAXBElement<Integer>	loginCount;
	@XmlElementRef(name = "name", namespace = "http://model.health.com", type = JAXBElement.class)
	protected JAXBElement<String>	name;
	@XmlElementRef(name = "password", namespace = "http://model.health.com", type = JAXBElement.class)
	protected JAXBElement<String>	password;
	@XmlElementRef(name = "permission", namespace = "http://model.health.com", type = JAXBElement.class)
	protected JAXBElement<Integer>	permission;
	@XmlSchemaType(name = "dateTime")
	protected XMLGregorianCalendar	registertime;
	@XmlElementRef(name = "start", namespace = "http://model.health.com", type = JAXBElement.class)
	protected JAXBElement<Integer>	start;
	@XmlSchemaType(name = "dateTime")
	protected XMLGregorianCalendar	startBirthdate;
	@XmlElementRef(name = "status", namespace = "http://model.health.com", type = JAXBElement.class)
	protected JAXBElement<Integer>	status;

	/**
	 * Gets the value of the birthdate property.
	 * 
	 * @return possible object is {@link XMLGregorianCalendar }
	 * 
	 */
	public XMLGregorianCalendar getBirthdate()
	{
		return birthdate;
	}

	/**
	 * Sets the value of the birthdate property.
	 * 
	 * @param value
	 *            allowed object is {@link XMLGregorianCalendar }
	 * 
	 */
	public void setBirthdate(XMLGregorianCalendar value)
	{
		this.birthdate = value;
	}

	/**
	 * Gets the value of the email property.
	 * 
	 * @return possible object is {@link JAXBElement }{@code <}{@link String }
	 *         {@code >}
	 * 
	 */
	public JAXBElement<String> getEmail()
	{
		return email;
	}

	/**
	 * Sets the value of the email property.
	 * 
	 * @param value
	 *            allowed object is {@link JAXBElement }{@code <}{@link String }
	 *            {@code >}
	 * 
	 */
	public void setEmail(JAXBElement<String> value)
	{
		this.email = ((JAXBElement<String>) value);
	}

	/**
	 * Gets the value of the endBirthdate property.
	 * 
	 * @return possible object is {@link XMLGregorianCalendar }
	 * 
	 */
	public XMLGregorianCalendar getEndBirthdate()
	{
		return endBirthdate;
	}

	/**
	 * Sets the value of the endBirthdate property.
	 * 
	 * @param value
	 *            allowed object is {@link XMLGregorianCalendar }
	 * 
	 */
	public void setEndBirthdate(XMLGregorianCalendar value)
	{
		this.endBirthdate = value;
	}

	/**
	 * Gets the value of the gender property.
	 * 
	 * @return possible object is {@link JAXBElement }{@code <}{@link Integer }
	 *         {@code >}
	 * 
	 */
	public JAXBElement<Integer> getGender()
	{
		return gender;
	}

	/**
	 * Sets the value of the gender property.
	 * 
	 * @param value
	 *            allowed object is {@link JAXBElement }{@code <}{@link Integer }
	 *            {@code >}
	 * 
	 */
	public void setGender(JAXBElement<Integer> value)
	{
		this.gender = ((JAXBElement<Integer>) value);
	}

	/**
	 * Gets the value of the id property.
	 * 
	 * @return possible object is {@link JAXBElement }{@code <}{@link String }
	 *         {@code >}
	 * 
	 */
	public JAXBElement<String> getId()
	{
		return id;
	}

	/**
	 * Sets the value of the id property.
	 * 
	 * @param value
	 *            allowed object is {@link JAXBElement }{@code <}{@link String }
	 *            {@code >}
	 * 
	 */
	public void setId(JAXBElement<String> value)
	{
		this.id = ((JAXBElement<String>) value);
	}

	/**
	 * Gets the value of the limit property.
	 * 
	 * @return possible object is {@link JAXBElement }{@code <}{@link Integer }
	 *         {@code >}
	 * 
	 */
	public JAXBElement<Integer> getLimit()
	{
		return limit;
	}

	/**
	 * Sets the value of the limit property.
	 * 
	 * @param value
	 *            allowed object is {@link JAXBElement }{@code <}{@link Integer }
	 *            {@code >}
	 * 
	 */
	public void setLimit(JAXBElement<Integer> value)
	{
		this.limit = ((JAXBElement<Integer>) value);
	}

	/**
	 * Gets the value of the loginCount property.
	 * 
	 * @return possible object is {@link JAXBElement }{@code <}{@link Integer }
	 *         {@code >}
	 * 
	 */
	public JAXBElement<Integer> getLoginCount()
	{
		return loginCount;
	}

	/**
	 * Sets the value of the loginCount property.
	 * 
	 * @param value
	 *            allowed object is {@link JAXBElement }{@code <}{@link Integer }
	 *            {@code >}
	 * 
	 */
	public void setLoginCount(JAXBElement<Integer> value)
	{
		this.loginCount = ((JAXBElement<Integer>) value);
	}

	/**
	 * Gets the value of the name property.
	 * 
	 * @return possible object is {@link JAXBElement }{@code <}{@link String }
	 *         {@code >}
	 * 
	 */
	public JAXBElement<String> getName()
	{
		return name;
	}

	/**
	 * Sets the value of the name property.
	 * 
	 * @param value
	 *            allowed object is {@link JAXBElement }{@code <}{@link String }
	 *            {@code >}
	 * 
	 */
	public void setName(JAXBElement<String> value)
	{
		this.name = ((JAXBElement<String>) value);
	}

	/**
	 * Gets the value of the password property.
	 * 
	 * @return possible object is {@link JAXBElement }{@code <}{@link String }
	 *         {@code >}
	 * 
	 */
	public JAXBElement<String> getPassword()
	{
		return password;
	}

	/**
	 * Sets the value of the password property.
	 * 
	 * @param value
	 *            allowed object is {@link JAXBElement }{@code <}{@link String }
	 *            {@code >}
	 * 
	 */
	public void setPassword(JAXBElement<String> value)
	{
		this.password = ((JAXBElement<String>) value);
	}

	/**
	 * Gets the value of the permission property.
	 * 
	 * @return possible object is {@link JAXBElement }{@code <}{@link Integer }
	 *         {@code >}
	 * 
	 */
	public JAXBElement<Integer> getPermission()
	{
		return permission;
	}

	/**
	 * Sets the value of the permission property.
	 * 
	 * @param value
	 *            allowed object is {@link JAXBElement }{@code <}{@link Integer }
	 *            {@code >}
	 * 
	 */
	public void setPermission(JAXBElement<Integer> value)
	{
		this.permission = ((JAXBElement<Integer>) value);
	}

	/**
	 * Gets the value of the registertime property.
	 * 
	 * @return possible object is {@link XMLGregorianCalendar }
	 * 
	 */
	public XMLGregorianCalendar getRegistertime()
	{
		return registertime;
	}

	/**
	 * Sets the value of the registertime property.
	 * 
	 * @param value
	 *            allowed object is {@link XMLGregorianCalendar }
	 * 
	 */
	public void setRegistertime(XMLGregorianCalendar value)
	{
		this.registertime = value;
	}

	/**
	 * Gets the value of the start property.
	 * 
	 * @return possible object is {@link JAXBElement }{@code <}{@link Integer }
	 *         {@code >}
	 * 
	 */
	public JAXBElement<Integer> getStart()
	{
		return start;
	}

	/**
	 * Sets the value of the start property.
	 * 
	 * @param value
	 *            allowed object is {@link JAXBElement }{@code <}{@link Integer }
	 *            {@code >}
	 * 
	 */
	public void setStart(JAXBElement<Integer> value)
	{
		this.start = ((JAXBElement<Integer>) value);
	}

	/**
	 * Gets the value of the startBirthdate property.
	 * 
	 * @return possible object is {@link XMLGregorianCalendar }
	 * 
	 */
	public XMLGregorianCalendar getStartBirthdate()
	{
		return startBirthdate;
	}

	/**
	 * Sets the value of the startBirthdate property.
	 * 
	 * @param value
	 *            allowed object is {@link XMLGregorianCalendar }
	 * 
	 */
	public void setStartBirthdate(XMLGregorianCalendar value)
	{
		this.startBirthdate = value;
	}

	/**
	 * Gets the value of the status property.
	 * 
	 * @return possible object is {@link JAXBElement }{@code <}{@link Integer }
	 *         {@code >}
	 * 
	 */
	public JAXBElement<Integer> getStatus()
	{
		return status;
	}

	/**
	 * Sets the value of the status property.
	 * 
	 * @param value
	 *            allowed object is {@link JAXBElement }{@code <}{@link Integer }
	 *            {@code >}
	 * 
	 */
	public void setStatus(JAXBElement<Integer> value)
	{
		this.status = ((JAXBElement<Integer>) value);
	}

}
